.ripple {
  width: 100px;
  height: 100px;
  cursor: pointer;
  position: relative;
}
.ripple span {
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 25px;
  height: 25px;
  background-color: #fff;
  border-radius: 50%;
  line-height: 23px;
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  color: orange;
  animation: nRipple1 1s 0s linear infinite;
  z-index: 999;
}
.ripple b {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background-color: #fff;
  animation: nRipple2 1s 0s linear infinite;
}
.ripple i {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background-color: #fff;
  animation: nRipple3 1s 0s linear infinite;
}
@keyframes nRipple1 {
  from {
    opacity: 1;
  }
  to {
    opacity: 0.2;
  }
}
@keyframes nRipple2 {
  from {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
  to {
    opacity: 0.2;
    transform: translate(-50%, -50%) scale(3);
  }
}
@keyframes nRipple3 {
  from {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
  to {
    opacity: 0.4;
    transform: translate(-50%, -50%) scale(2);
  }
}
